export interface BaseSysMenu {
  /*上级id,0一级菜单 */
  parentId: string;

  /*菜单名称 */
  name: string;

  /*菜单类型 0:目录 1:菜单 */
  type: string;

  /*菜单组件类型0:组件1:内链2:外链,type=0时为空  */
  componentType: string;

  /*菜单组件地址, type=0时为空 */
  componentPath: string | null;

  /*状态 0 禁用 1 正常 */
  status: string;

  /*菜单路由地址 */
  path: string;

  /*菜单图标 */
  icon: string;

  /*缓存页面0禁用1启用 */
  keepAlive: string;

  /*是否隐藏 0 否 1 是 (仅注册路由不显示在左侧菜单) */
  hide: string;

  /*其它路由元信息 */
  meta?: string | null;

  /*排序序号 */
  sort: number;
}

export interface AddSysMenu extends BaseSysMenu { }

export interface EditSysMenu extends BaseSysMenu {
  /*主键 */
  id: string;

  /*路径码 */
  pathCode: string;

  /*层级 */
  level: number;
}

export interface SysMenu extends BaseSysMenu {
  /*主键 */
  id: string;

  /*创建人 */
  createBy: string;

  /*创建时间 */
  createTime: Record<string, unknown>;

  /*修改人 */
  updateBy: string;

  /*修改时间 */
  updateTime: Record<string, unknown>;

  /*备注说明 */
  comment: string;

  /*更新版本 */
  version: number;

  /*逻辑删除标识 */
  isDelete: boolean;

  /*路径码 */
  pathCode: string;

  /*层级 */
  level: number;

  /*必须字段重写（覆盖可选属性） */
  componentType: string;
  componentPath: string;
  icon: string;
  hide: string;

  /*树结构*/
  children?: SysMenu[]
}
